/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.pb138.jprvyd;

import java.util.List;

/**
 *
 * @author tom
 */
public interface PaymentMethodManager {
    
    /**
     * Creates a new payment method
     * 
     * @param paymentMethod
     * @throws IllegalEntityException 
     */
    public void createPaymentMethod(PaymentMethod paymentMethod) throws IllegalEntityException;
    
    /**
     * Updates an existing payment method
     * 
     * @param paymentMethod
     * @throws IllegalEntityException 
     */
    public void updatePaymentMethod(PaymentMethod paymentMethod) throws IllegalEntityException;
    
    /**
     * Removes an existing payment method
     * 
     * @param id 
     */
    public void removePaymentMethod(Long id);
    
    /** 
     * Retrieves payment method by id
     * 
     * @param id
     * @return 
     */
    public PaymentMethod getPaymentMethod(Long id);
    
    /**
     * Retrieves all payment methods
     * 
     * @return 
     */
    public List<PaymentMethod> getAllPaymentMethods();
}
